Information-processing device and program

ABSTRACT

When executing plural application programs in parallel, a control unit assigns a small storage area to each application program so that a part of a function implemented by execution of each application program is provided. When providing a service of high value to a user, a control unit assigns a large storage area to any one of the application programs so that a full function that is implemented by execution of the application program is provided.

TECHNICAL FIELD

The present invention relates to a control to execute an applicationprogram.

BACKGROUND

A multi-window system in which plural windows can be displayed is known.In such a multi-window system, in a case where each window correspondsto an application program, and plural windows are displayed, pluralapplication programs are running in parallel. To determine anarrangement of windows in a multi-window system, techniques described inpatent documents 1 and 2 are known. The techniques are for arrangingwindows according to a predetermined algorithm depending on an area of awindow, or a number of windows to be displayed, to improve visibilityand operability.

In a small information-processing device such as a mobile phone, memorycapacity is limited. Therefore, in a case where such aninformation-processing device implements a multi-window system, a numberof application programs that can be executed in parallel is limited.Recently, such information-processing devices have become increasinglysophisticated, and the level of services required by a user or value ofservices to a user becomes higher. However, a storage area of a memorythat is required by an application program for providing such a servicehas to be increased accordingly. Thus, it is likely that a situationoccurs that only a single application program can be executed. However,user demand for parallel execution of plural application programs ishigh.

SUMMARY

The present invention has an object to provide both an environment forresponding to a user's demand for a variety of uses by executing pluralapplication programs, and an environment for providing satisfactoryservice to a user by executing an application program.

In an embodiment, the present invention provides aninformation-processing device including: a memory; execution means forassigning all or a part of a storage area of the memory to each of aplurality of application programs, to execute the application program;and storage means for storing first identification information thatrepresents a state in which an application program is running, or secondidentification information that represents a state in which execution ofan application program is suspended, for each application program,wherein: (a) in a case where at least one first application program isrunning, a number of the first identification information stored in thestorage means is smaller than an upper limit, and a second applicationprogram is to be executed, the execution means: suspends execution ofthe first application program, and rewrites identification informationof the at least one first application program that is stored in thestorage means, as the second identification information, assigns theentire storage area to the second application program, to execute thesecond application program, and when the second application program isrunning, and an instruction to execute the first application program hasbeen received, assigns a part of the storage area to each of the atleast one first application program and the second application program,to execute the application programs in parallel, and rewritesidentification information of each of the at least one first applicationprogram and the second application program, as the first identification;and (b) in a case where the at least one first application program isrunning, a number of the first identification information stored in thestorage means is equal to the upper limit, and the second applicationprogram is to be executed, the execution means: suspends execution ofthe at least one first application program, and rewrites identificationinformation of the first application program that is stored in thestorage means, as the second identification information, assigns theentire storage area of the memory to the second application program, toexecute the second application program, and when the second applicationprogram is running, and an instruction to execute the at least one firstapplication program has been received, ends the second applicationprogram, and assigns a part of the storage area to each of the at leastone first application program, to execute the first application programin parallel, and rewrites identification information of the at least onefirst application program, as the first identification information.

In a preferred embodiment, in the case (b), if an instruction has beenreceived to execute the at least one first application program whoseexecution is suspended, the execution means: identifies a thirdapplication program that has a lower priority level among applicationprograms for which the second identification information is written, andends execution of the third application program, instead of endingexecution of the second application program; and assigns a part of thestorage area to each of the running second application program and theat least one first application program for which the secondidentification information is written, other than the third applicationprogram, to execute the application programs in parallel, and updatesidentification information of the application programs to which the partof the storage area is assigned, to the first identificationinformation.

In a preferred another embodiment, the execution means specifies, basedon a period in which the first identification information or the secondidentification information related to an application program is stored,a priority level of the application program.

In a preferred another embodiment, the execution means specifies, basedon a period in which one application program is executed after executionof another application is suspended, a priority level of the oneapplication program.

In a preferred another embodiment, the execution means specifies, basedon a number of times the first identification information or the secondidentification information related to an application program is stored,a priority level of the application program. In a preferred anotherembodiment, the execution means specifies, based on a number of timesone application program is executed after execution of anotherapplication program is suspended, a priority level of the oneapplication program.

In another embodiment, the present invention provides aninformation-processing device including: a memory; execution means forassigning all or a part of a storage area of the memory to eachapplication program, to execute the application program; and storagemeans for storing any one of first identification information thatrepresents a full execution state in which an application program canperform all of its function, second identification information thatrepresents a partial execution state in which an application program canperform a part of its function, and third identification informationthat represents a state in which execution of an application program issuspended, for each application program, wherein (a) in a case where atleast one first application program is running, a number of items of thesecond identification information stored in the storage means is smallerthan an upper limit, and a second application program is to be executed,the execution means: suspends execution of the first applicationprogram, rewrites identification information of the first applicationprogram stored in the storage means, as the third identificationinformation, assigns the entire storage area to the second applicationprogram, to execute the second application program in the partialexecution state, and rewrites identification information of the secondapplication program as the first identification information, and whenthe second application program is running, and an instruction to executethe first application program has been received, assigns a part of thestorage area to each of the at least one first application program andthe second application program, to execute the application programs inparallel in the partial execution state, and rewrites identificationinformation of each of the at least one first application program andthe second application program, as the second identification; and (b) ina case where the at least one first application program is running, anumber of items of the second identification information stored in thestorage means is equal to the upper limit, and the second applicationprogram is to be executed, the execution means: suspends execution ofthe at least one first application program, rewrites identificationinformation of the at least one first application program that is storedin the storage means, as the second identification information, assignsthe entire storage area of the memory to the second application program,to execute the second application program in the full execution state,and rewrites identification information of the second applicationprogram as the first identification information, and when the secondapplication program is running, and an instruction to execute the atleast one first application program has been received, ends the secondapplication program, assigns a part of the storage area to each of theat least one first application program, to execute the first applicationprogram in parallel in the partial execution state, and rewritesidentification information of the at least one first applicationprogram, as the second identification information.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a physical configuration of acommunication terminal device.

FIG. 2 is a diagram showing a logical configuration of a communicationterminal device.

FIG. 3 is a diagram schematically showing a list screen.

FIG. 4 is a diagram showing a widget control table.

FIG. 5 is a flowchart showing a display control performed by a controlunit of a communication terminal device.

FIG. 6 is a diagram showing a widget control table.

FIG. 7 is a diagram showing a display aspect of windows displayed on adisplay unit.

FIG. 8 is a diagram showing a display aspect of windows displayed on adisplay unit.

FIG. 9 is a diagram showing a display aspect of windows displayed on adisplay unit.

DETAILED DESCRIPTION

FIG. 1 is a block diagram showing a physical configuration of acommunication terminal device according to an embodiment of the presentinvention. As shown in the drawing, communication terminal device 10includes control unit 11, wireless communication unit 12, display unit13, and operation unit 14. It is to be noted that communication terminaldevice 10 according to the present embodiment is a mobile phone having ameans for inputting and outputting a voice (not shown) such as amicrophone and a speaker.

Control unit 11 includes CPU (Central Processing Unit) 11 a, ROM (ReadOnly Memory) 11 b, RAM (Random Access Memory) 11 c, and EEPROM(Electronically Erasable and Programmable ROM) 11 d. CPU 11 a is anexecution means for executing a program stored in ROM 11 b or EEPROM 11d while using RAM 11 c as a work area. CPU 11 a controls an operation ofeach unit of communication terminal device 10 by executing the program.In other words, RAM 11 c serves as a memory that is assigned to anapplication program when CPU 11 a executes the application program.Wireless communication unit 12 includes antenna 12 a, and performswireless data communication with a predetermined mobile communicationnetwork. Display unit 13 includes a liquid crystal display and a liquidcrystal driving circuit, and displays an image in a display area basedon display data provided from control unit 11. Operation unit 14includes plural keys to receive an input operation by a user, andprovides to control unit 11 operation information, which corresponds tothe input operation. The keys may be so-called hard buttons. Ifcommunication terminal device 10 has a touch panel, the touch panel mayreceive such an operation instruction.

ROM 11 b pre-stores some programs. Hereinafter, the programs will bereferred to as “preinstalled programs.” The preinstalled programsinclude a multitask operating system (hereinafter referred to as“multitask OS”), a Java™ platform, and native application programs. Themultitask OS is an operating system that supports functions such asassignment of a virtual memory space that are necessary to realizepseudo-parallel execution of plural tasks. The Java platform is a set ofprograms that are described in accordance with a CDC (Connected DeviceConfiguration), which is a configuration for realizing Java RuntimeEnvironment 140 (described later) in communication terminal device 10 inwhich the multitask OS is installed. The native application programs areprograms for realizing a basic function of communication terminal device10 such as a telephone call.

EEPROM 11 d includes Java application program storage areas for storingJava application programs. A Java application program includes a JAR(Java Archive) file that is a combination of a substance program thatdescribes a procedure in a Java Runtime Environment, and image files oraudio files that are used when the substance program is executed; and anADF (Application program Descriptor File) in which properties ofinstallation and start-up of the JAR file are described. The Javaapplication program is prepared by a content provider or a carrier, andstored in an external server device, and can be downloaded from theserver device on request by communication terminal device 10.

FIG. 2 is a diagram showing a logical configuration of units realized bycontrol unit 11 of communication terminal device 10 by executingprograms stored in ROM 11 b and EEPROM 11 d. As shown in the drawing, incommunication terminal device 10 that executes the programs, nativeapplication programs 120 and Java Runtime Environment 130 are realizedin OS 110, and first storage 140 and second storage 150 are secured inEEPROM 11 d.

Java Runtime Environment 130 is realized by use of the Java platformstored in ROM 11 b. Java Runtime Environment 130 includes class library160, JVM (Java Virtual Machine) 170, and JAM (Java Application programManager) 180. Class library 160 is a file of a combination of programmodules (classes) that have a particular function. JVM 170 is a JavaRuntime Environment that is optimized for the CDC described above, andhas a function of interpreting and executing bite codes provided as aJava application program. JAM 180 has a function of managingdownloading, installation, start-up, and end of Java applicationprograms.

First storage 140 is an area for storing Java application programs, eachof which includes a JAR file and an ADF, which are downloaded undercontrol of JAM 180. Second storage 150 is an area in which an individualstorage area is assigned to each installed Java application program, andis used for storing data generated during running of Java applicationprograms after the application programs end. Data of a certain Javaapplication program in a storage area assigned to the Java applicationprogram can be rewritten only when the application program is running;therefore, the data cannot be rewritten by another Java applicationprogram.

Java application programs of the present embodiment include applicationprograms for displaying plural windows. The Java application programsfor displaying plural windows include a “list display applicationprogram” and a “widget.” The list display application program is anapplication program for displaying one or more windows in a display areaof display unit 13, and controlling display of the windows. The “widget”is an application program that realizes a predetermined function onlywhen the list display application program displays a window.

In the following description, a screen on which a list of windows thatcorresponds to one or more widgets is displayed is referred to as “listdisplay screen.” In the present embodiment, “window” refers to a part ofa display area of display unit 13 that is assigned to a certain widget.The window is displayed as an image that can be distinguished from animage in another part of the display area. The shape and size of thewindow depend on a widget to which the window is assigned.

In the present embodiment, plural widgets appear, each widget realizinga different function. The widgets include, for example, a widget fordisplaying a time and date by displaying a clock image in a window(hereinafter referred to as “clock widget”), a widget for displayingcharacters input by a user in a window as a memorandum (hereinafterreferred to as “memo widget”), a widget for playing a video or music(hereinafter referred to as “play widget”), or a widget for playing acomputer game (hereinafter referred to as “game widget”). Also, thewidgets may include a widget that acquires information such as news orweather forecast via wireless communication unit 12 at a predeterminedtime, and displays the acquired information.

The foregoing is a description of the configuration of communicationterminal device 10 according to the present embodiment. Communicationterminal device 10 having such a configuration executes pluralapplication programs in response to a request input by a user.Communication terminal device 10 according to the present embodimentrealizes a multi-window system by displaying windows of widgets. Namely,communication terminal device 10 runs a list display application programwhen displaying a list display screen on which plural windows appear. Auser can select one from among plural windows displayed on the listdisplay screen by operating a cursor key of operation unit 14. Controlunit 11 selects at least one from among plural windows displayed ondisplay unit 13 in accordance with a signal output from operation unit14. It is to be noted that in the present embodiment the “selection” ofa window means specifying a window of focus.

Communication terminal device 10 sets a widget corresponding to auser-selected window to a state in which the widget carries out anoperation that is different from an operation carried out when thewindow has not been selected. Namely, each widget is able to carry outdifferent operations depending on whether a window corresponding to thewidget has been selected. Specifically, when a window is selected,communication terminal device 10 performs processing by setting a widgetcorresponding to the window to a state in which a full function isexecuted (hereinafter, referred to as “fully executed state”); when awindow is not selected, communication terminal device 10 performsprocessing by setting a widget corresponding to the window to a state inwhich a part of the function is executed (hereinafter, referred to as“partially executed state”). When a widget is to be fully executed,control unit 11 refers to an entire procedure described in the widget,and performs processing according to the procedure. On the other hand,when a widget is to be partially executed, control unit 11 refers to apredetermined part of a procedure described in the widget, and performsprocessing according to that part of the procedure.

For example, the clock widget is able to carry out an operation todisplay a time and date in the partially executed state, and is able tocarry out an operation to change the time and date or an appearance suchas a form or color in the fully executed state. The memo widget is ableto carry out an operation to display characters in the partiallyexecuted state, and is able to carry out an operation to changecharacters in the fully executed state. The play widget is able to carryout an operation to play a video or music in the partially executedstate, and is able to carry out an operation to control the volume, orpause or fast-forward a video or music in the fully executed state. Thegame widget is able to carry out an operation to put a game in a stateof rest and display an image of the state in the partially executedstate, and is able to carry out an operation to play the game in thefully executed state. The operations are carried out depending on anexecution state of each widget in accordance with an operation by auser. For example, when a user performs an operation to set a clock, thetime is changed accordingly.

In various services provided by a single widget, a service that can beimplemented by simple processing is provided when the widget ispartially executed, and a service that can be implemented by complicatedprocessing is provided when the widget is fully executed. Simplicity orcomplexity of processing depends on an amount of a storage area of RAM11 c used in the processing. Therefore, when a widget is fully executedin communication terminal device 10, a large amount of storage area ofRAM 11 c is assigned to the widget; on the other hand, when a widget ispartially executed, a small amount of storage area of RAM 11 c isassigned to the widget. Accordingly, communication terminal device 10can execute plural widgets simultaneously when the device executes thewidgets partially. On the other hand, when a certain widget is fullyexecuted, since a relatively large amount of storage area of RAM 11 c isassigned to the widget, every function of the fully executed widget canbe provided, although a function of another widget cannot be usedsimultaneously. As a result, it is possible to provide a higher level ofservice to a user.

Communication terminal device 10 executes a list display applicationprogram to display in a list display screen windows corresponding towidgets that are partially executed. If any of the widgets is fullyexecuted, communication terminal device 10 displays a screen on whichonly a window corresponding to the widget appears (hereinafter referredto as “full execution screen”) on display unit 13. A display aspect of awindow is different depending on an execution state. For example, if awindow displayed on the full execution screen is of a size correspondingto magnification “100%,” a window of a partially executed widget,displayed on the list display screen is of a size corresponding tomagnification “60%.” If a user operates operation unit 14 to select acertain window while communication terminal device 10 displays a listdisplay screen, communication terminal device 10 changes an executionstate of a widget corresponding to the selected window from a partiallyexecuted state to a fully executed state. Also, communication terminaldevice 10 changes an execution state of a widget corresponding to awindow other than the selected window from a partially executed state toa state in which execution is temporary suspended. Subsequently,communication terminal device 10 changes the “list display screen” thathas been displayed on display unit 13 to the “full execution screen.” Onthe other hand, if the “full execution screen” is changed to the “listdisplay screen,” communication terminal device 10 changes an executionstate of the widget that is fully executed to a partially executedstate, and changes an execution state of the widget whose execution istemporary suspended after the widget has been partially executed, to thepartially executed state. As a result, a list display screen on which awindow of a partially executed widget appears is displayed.

As for display of a widget, a screen called “list screen” is used inaddition to the “list display screen” and “full execution screen”described above. On the “list screen,” a list of all widgets that areexecutable by communication terminal device 10 is displayed. When a newwidget is to be executed, communication terminal device 10 displays the“list screen” on display unit 13, and prompts a user to select a widgetto be started. FIG. 3 shows a diagram schematically showing a listscreen. On the list screen shown in the drawing, icons ICO1 to ICO8corresponding to some of widgets that are executable by communicationterminal device 10 are displayed. It is to be noted that if a useroperates a down arrow key of operation unit 14, icons corresponding toother widgets are displayed (not shown). If any of the icons is selectedvia operation unit 14 by a user, communication terminal device 10 fullyexecutes a widget corresponding to the icon.

The list display application program can suspend displaying a list ofplural windows. For example, display of the list is suspended whencommunication terminal device 10 displays a full execution screen or alist screen while a list display screen is displayed by the list displayapplication, and returns to the list display screen again to display aprior displayed content. In another case, if a user starts a telephonecall while the list display screen is displayed, communication terminaldevice 10 carries out an interrupt processing to change the imagedisplayed on display unit 13 to an image for a telephone call. When thetelephone call is finished, communication terminal device 10 displays alist display screen again. To do so, control unit 11 of communicationterminal device 10 stores in EEPROM 11 d identification information(widget ID described later) of a running widget or a widget whoseexecution is interrupted, in a table format, referred to as a widgetcontrol table. When resuming display of the list display screen,communication terminal device 10 executes widgets in an execution statethat is identical to their execution state before they were suspended,based on a content of the widget control table, and displays windowscorresponding to the widgets.

FIG. 4 shows a diagram showing a configuration of a widget controltable. As shown in FIG. 4, the widget control table associates “widgetID” with “execution state.” In a field “widget ID,” identificationinformation for identifying a widget that is already executed bycommunication terminal device 10, such as the clock widget or the memowidget, is written. In a field “execution state,” one of “partiallyexecuted state,” “fully executed state,” and “not-executed state” thatmeans execution of a widget is temporarily suspended, is written. In acase of the widget control table shown in FIG. 4, communication terminaldevice 10 partially executes widgets corresponding to widget IDs “001”to “005.” In this situation, communication terminal device 10 displayson display unit 13 a list display screen on which a window correspondingto each of the widgets appears. Communication terminal device 10 updatesthe list display screen each time an execution state of a widget ischanged.

FIG. 5 is a flowchart showing an operation carried out when a listdisplay application program and a widget are executed by control unit11. The following description is made of an operation performed when awidget is executed by communication terminal device 10. It is assumedthat no widget has been executed yet prior to this operation.

Control unit 11 initially waits until receiving an instruction todisplay a list screen, or to display a list display screen by anoperation of operation unit 14 by a user. If control unit 11 determinesthat the instruction to display the list screen has been received (stepS1; list screen), control unit 11 displays on display unit 13 the listscreen, on which appears a list of icons representing widgets that areexecutable by the device, as shown in FIG. 3 (step S2). Subsequently,control unit 11 waits until one of the icons is selected by an operationof operation unit 14 by a user so that execution of a widget isinstructed (step S3; NO). If control unit 11 determines that one of theicons has been selected so that execution of a widget corresponding tothe icon has been instructed (step S3; YES), control unit 11 proceeds tostep S4. In this case, it is assumed that icon ICO1 (widget ID “001”)shown in FIG. 3 is selected by a user, and controller 11 determines thatan instruction to execute the clock widget has been received in step S3.

Subsequently, control unit 11 updates a widget control table (step S4).In this case, control unit 11 rewrites the widget control table suchthat the table has a content shown in FIG. 6( a). Specifically, controlunit 11 writes widget ID “001” of the clock widget, and writesinformation “fully executed state” in a field “execution state” inassociation with the widget ID. Subsequently, control unit 11 fullyexecutes a widget based on the content updated in step S4, and displaysa window corresponding to the widget on display unit 13 (step S5). Inthis case, control unit 11 fully executes the clock widget, and displayson display unit 13 a full execution screen on which window W1corresponding to the clock widget appears, as shown in FIG. 7( a). Inthis case, since the clock widget is fully executed, control unit 11uses a large part of a storage area of RAM 11 c. Therefore, a widgetother than the clock widget cannot be executed.

Control unit 11 performs processing related to the clock widget that isfully executed, in accordance with an operation of operation unit 14 bya user (step S6). The processing related to the clock widget includesprocessing to change an appearance, as described above. The processingis different from processing executed when the widget is partiallyexecuted.

Control unit 11 determines whether an instruction to end processingrelated to the fully executed widget has been received (step S7). Whenthe determination is made, if a user operates operation unit 14 tochange the full execution screen, which is currently displayed, to alist display screen, control unit 11 determines that the instruction toend processing of the fully executed widget has been received.

If control unit 11 makes a determination “YES” in step S7, control unit11 determines whether the number of widgets running simultaneously issmaller than an allowable number (step S8). In this case, the allowablenumber, which is stored in ROM 11 b, is “8.” The allowable number is anupper limit determined in design stage on the basis of a relationshipbetween a storage capacity of RAM 11 c that is used for execution ofwidgets by communication terminal device 10, and an amount of storagethat is required for partial execution of each widget. In other words,the allowable number is determined so that an amount of storage requiredfor the partial execution of widgets does not exceed the storagecapacity of RAM 11 c that is assigned for execution of widgets.

In this case, since only the clock widget is executed, and therefore thenumber of widgets that is simultaneously running is “one,” control unit11 makes a determination “YES,” and proceeds to step S9 to update thewidget control table. In this case, control unit 11 rewrites the widgetcontrol table so that the table has a content shown in FIG. 6( b).Specifically, control unit 11 rewrites information in a field “executionstate” associated with widget ID “001” of the clock widget from “fullyexecuted state” to “partially executed state.” According to this update,an execution state of all widget that is simultaneously running ischanged to “partially executed state.” Thereafter, control unit 11displays on display unit 13 a list display screen on which a windowcorresponding to the partially executed widget appears (step S10). Inthis situation, control unit 11 assigns to the widget a storage areasmaller than a storage area that is assigned to the widget in a fullyexecuted state, to partially execute the widget. In this case, where thewidget control table has been updated in step S9 so that the clockwidget is partially executed, control unit 11 displays a list displayscreen on which window Ws 1 corresponding to the clock widget that ispartially executed is displayed at the center of display unit 13, asshown in FIG. 7( b). Subsequently, control unit 11 returns to step S1,and waits until receiving an instruction to display a list screen, or todisplay a list display screen.

Subsequently, if the list screen is displayed on display unit 13 (stepS2), and an instruction to newly execute another widget has beenreceived (step S3; YES), control unit 11 executes the widget whoseexecution is instructed. If an instruction to execute the memo widgethas been received, control unit 11 updates the widget control table sothat the table has a content shown in FIG. 6( c) (step S4).Specifically, control unit 11 writes widget ID “002” of the memo widgetin the widget control table, and writes information “fully executedstate” as information on an execution state associated with the widgetID. In this case, since the other widget is already executed, controlunit 11 rewrites information on an execution state of the widget that isalready executed from “partially executed state” to “not-executedstate.” In this case, control unit 11 rewrites information on anexecution state associated with widget ID “001” as “not-executed state.”According to the operation, control unit 11 is able to fully executeanother widget if a widget has been already executed. This is because,since the execution state is rewritten to “not-executed state,” andtherefore a storage area of RAM 11 c assigned to the widget that wasexecuted previously (in this case, the clock widget identified by widgetID “001”) is released, a storage area of RAM 11 c is assigned to thememo widget, which is fully executed newly.

Control unit 11 fully executes the memo widget, and displays on displayunit 13 a full execution screen on which window W2 corresponding to thememo widget appears, as shown in FIG. 7( c) (step S5).

Subsequently, control unit 11 performs steps S6 to S8, and updates thewidget control table so that the table has a content shown in FIG. 6( d)to display a list display screen on display unit 13 (step S9).Specifically, control unit 11 rewrites information on an execution stateassociated with widget ID “002” from “fully executed state” to“partially executed state,” to partially execute the memo widget.Control unit 11 also rewrites information on an execution stateassociated with widget ID “001” from “not-executed state” to “partiallyexecuted state,” and assigns storage areas of RAM 11 c to the widgetsidentified by widget ID “001” and “002” based on the widget controltable. As a result, execution states of all widgets that aresimultaneously running are changed to “partially executed state” bycontrol unit 11. Control unit 11 displays on display unit 13 a listdisplay screen on which window Ws1 corresponding to the clock widget andwindow Ws2 corresponding to the memo widget appear (step S10).

Thereafter, control unit 11 executes the same processing steps asdescribed above until the number of widgets running simultaneouslyreaches the allowable number “8.” Specifically, in a case where a widgetcontrol table represents that the number of running widgets (partiallyexecuted) is smaller than the upper limit, and a new widget other thanthe running widget is to be executed, control unit 11 suspends executionof the running widget, and writes a widget ID of the widget as a widgetID of a widget whose execution is suspended, in a widget control table.Control unit 11 assigns a storage area of RAM 11 c to the new widget toexecute the widget. If an instruction to re-execute the widget whoseexecution is suspended has been received, control unit 11 assigns astorage area of RAM 11 c to each of the running widget and the widgetwhose execution is suspended, and writes a widget ID of each of thesewidgets as a widget ID of a running widget in the widget control table,to execute the widgets in parallel.

If control unit 11 simultaneously executes “8” widgets and displays alist display screen, the widget control table has a content as shown inFIG. 6( e). In the widget control table, in association with each ofwidget IDs “001” to “008” of the “8” widgets running simultaneously,information “partially executed state” is written as information on anexecution state. For example, the list display screen has a displaycontent as shown in FIG. 8( a). On the list display screen, windows Ws1to Ws8 corresponding to the eight partially executed widgets aredisplayed. A part of some windows extends out of the display area, andtherefore is not displayed; however, the part can be made visible by anoperation of operation unit 14 by a user.

Next, description is made of an operation performed by control unit 11when an instruction to execute a “ninth” widget, whose number exceedsthe allowable number, has been received.

If an instruction to execute a “game widget,” which is a “ninth” widget,has been received (step S3; YES), control unit 11 updates the widgetcontrol table so that the table has a content shown in FIG. 6( f) (stepS4). Specifically, control unit 11 rewrites information on an executionstate associated with each of widget IDs “001” to “008” of eight widgetsthat are already executed, from “partially executed state” to“not-executed state,” and also writes information “fully executed state”in association with widget ID “009” of the game widget, which is to benewly executed. Control unit 11 accordingly releases all storage areasof RAM 11 c that have been assigned to widget IDs “001” to “008,” andassigns a storage area of RAM 11 c to the widget identified by widget ID“009.” Subsequently, control unit 11 displays on display unit 13 a fullexecution screen on which window W9 corresponding to the game widgetthat is fully executed appears (step S5).

If a list display screen is displayed, since the number of widgets thatare to be run simultaneously (the number of widgets whose executionstate is “not-executed state” in the widget control table) is “8” whichis the allowable number, control unit 11 makes a determination “NO” instep S8, and proceeds to step S11. After the number of widgets alreadyexecuted reaches “8,” control unit 11 ends the game widget executed instep S3 (step S11). Subsequently, control unit 11 updates the widgetcontrol table so that the table has a content shown in FIG. 6( g) (stepS12). Specifically, control unit 11 rewrites information on an executionstate associated with each of widget IDs “001” to “008” from“not-executed state” to “partially executed state,” and also deleteswidget ID “009” of the game widget that has been ended from the widgetcontrol table. Thereafter, control unit 11 releases a storage area ofRAM 11 c that is assigned to the game widget, and assigns a storage areaof RAM 11 c to each of widgets identified by widget IDs “001” to “008.”As a result, in step S10 a list display screen as shown in FIG. 8( c) isdisplayed by control unit 11. The list display screen is the same as theprevious list display screen that is displayed when “8” widgets areexecuted (FIG. 8( a)). Thereafter, control unit 11 ends a widget thatwas recently executed if a screen is returned to a list display screen,as long as the allowable number of widgets is running.

As is described in the foregoing, if the number of widget IDs of runningwidgets that is stored in a widget control table is equal to an upperlimit, and a new widget other than the running widgets is to beexecuted, control unit 11 suspends execution of the running widgets, andwrites a widget ID of each of the running widgets as a widget ID of awidget whose execution is suspended, in a widget control table.Thereafter, control unit 11 assigns a storage area of RAM 11 c to thenew widget to execute the widget. If an instruction to re-execute thewidgets whose execution is suspended has been received, control unit 11ends execution of the running new widget, and assigns a storage area ofRAM 11 c to each widget whose execution is suspended, and writes awidget ID of each of the widgets as a widget ID of a running widget inthe widget control table, to execute the widgets in parallel.

Accordingly, in a case where an allowable number of widgets runningsimultaneously is set to be “8” based on a limitation of a storagecapacity of RAM 11 c, and an instruction to execute a widget has beennewly received, control unit 11 temporarily suspends execution of awidget already executed, and fully executes the new widget using astorage area that becomes available as a result of the suspension. Also,when displaying a list display screen again, control unit 11 ends a“ninth” widget, and partially executes the “8” widgets that have beenexecuted and are described in a widget table, using a storage area thatbecomes available as a result of end of the widget. Thus, communicationterminal device 10 is able to execute a new application program even ina case where plural application programs are simultaneously running andthe number of the application programs is equal to an allowable number.Also, after ending the new application program, communication terminaldevice 10 is able to restore the previous state in which the pluralapplication programs are running simultaneously.

It is to be noted that if control unit 11 displays a list display screenin step S1 (step S1; list display screen), control unit 11 displays ondisplay unit 13 a list display screen on which a window corresponding toa partially executed widget appears, on the basis of a content of awidget control table at the time (step S13). Thereafter, if a certainwindow is selected by a user (step S3; YES), control unit 11 accordinglyupdates the widget control table (step S4), changes an execution stateof a widget corresponding to the selected window from “partiallyexecuted state” to “fully executed state,” and temporarily suspendsanother widget that is partially executed (step S5). Subsequently,control unit 11 performs the same processing steps as described above.

According to the embodiment described above, when executing pluralwidgets in parallel, control unit 11 of communication terminal device 10executes the widgets in a partially executed state, in which a smallstorage area of RAM 11 c is assigned to each widget, so that a part of afunction that is implemented by execution of each widget is provided. Onthe other hand, when providing a service of high value to a user,control unit 11 assigns a large storage area of RAM 11 c to either oneof the widgets to fully execute the widget so that a full functionimplemented by the execution is provided. According to the control ofexecution states of plural widgets, it is possible to provide both anenvironment for responding to a user's demand for a variety of uses byexecuting plural widgets, and an environment for providing a service ofhigh value to a user by executing a widget.

The present invention may be implemented in an embodiment that isdifferent from the above embodiment. For example, the present inventionmay be implemented in the embodiments described below. It is to be notedthat the following modifications may be combined with each other.

In the above embodiment, control unit 11 ends a widget that is executedin step S3 (namely, a widget most recently executed) after the number ofwidgets already executed reaches an allowable number, and deletesinformation on the widget from the widget control table. However,control unit 11 may end a widget other than the widget most recentlyexecuted. The following configuration may be employed for determining awidget to be ended.

After making a determination “NO” in step S8, control unit 11 maydisplay a screen on display unit 13 to ask a user which widget is to beended. For example, control unit 11 may display on display unit 13 ascreen on which a plurality of soft buttons appear, each describing aname of a running widget, to prompt a user to select a widget to beended. Control unit 11 ends a widget corresponding to a soft buttonselected by a user, and changes an execution state of a widget that isexecuted most recently from a fully executed state to a partiallyexecuted state. Control unit 11 also changes an execution state of awidget whose execution is suspended (other than the widget that has beenended by a user selection) to a partially executed state. By thisconfiguration, if a user makes an instruction to end a widgetcorresponding to window Ws3 shown in FIG. 8( a), control unit 11displays on the list display screen window Ws9 corresponding to the gamewidget, instead of window Ws3, as shown in FIG. 9.

“Execution priority level” may be defined for each widget, and a widgethaving a lower priority level may be ended. The priority level isdetermined based on usage of each widget or designation by a user, andinformation on the priority level is stored in EEPROM 11 d.

According to the configuration, control unit 11 identifies a widget IDof a widget that has a lower execution priority level among widget IDsdescribed in the widget control table in association with information onan execution state of “not-executed state,” in step S11 of FIG. 5, andends the execution of the widget. Subsequently, control unit 11 assignsa storage area of RAM 11 c to a fully executed widget, and a widgetwhose execution state is “not-executed state,” which is not the widgetwhose execution has been ended because the widget has a lower prioritylevel. Subsequently, control unit 11 partially executes these widgets inparallel.

For example, control unit 11 determines a priority level based on aperiod in which each widget is running In this case, communicationterminal device 10 includes time measurement means, such as a timer, andcontrol unit 11 measures using the time measurement means a period(time) in which each widget ID is described in the widget control tablein association with information on an execution state of “partiallyexecuted state” or “not-executed state,” and describes the period in thewidget control table. The period described in association with eachwidget ID is a period in which identification information of a runningapplication program, or identification information of an applicationprogram whose execution is suspended, is described in the widget controltable. In step S11 shown in FIG. 5, control unit 11 determines apriority level based on a period described in the widget control table.If the period is short, it may mean that a period in which a user hasused a widget is short. In this case, control unit 11 may give a lowerpriority level to a widget because the widget is not so important for auser. Conversely, when the period is short, it may mean that a user hasstarted using a widget recently, and therefore the widget is importantfor a user at the time. In this case, control unit 11 may give a lowerpriority level to a widget as the period becomes longer. In step S11shown in FIG. 5, control unit 11 ends a widget having a lower prioritylevel that is described in the widget control table.

Alternatively, control unit 11 may measure a period in which each widgetID is described in the widget control table in association withinformation on an execution state of “fully executed state,” and maydescribe the period in the widget control table. The period in which thewidget ID is described in association with information on executionstate of “fully executed state” is a period in which a new applicationprogram is running after an application program that has been runninghas been suspended. In this case, as in the case described above, if theperiod is short, it may mean that a period in which a widget has beenused by a user is short. Therefore, control unit 11 may give a lowerpriority level to a widget because the widget is not so important for auser. Conversely, the fact that the period is short may mean that a userhas started using a widget recently, and therefore the widget isimportant for a user at the time. It is to be noted that since a periodin which a widget ID is described in association with information on anexecution state of “fully executed state” is considered as a period inwhich a more useful service is provided to a user, than a period inwhich the widget ID is described in associated with information on anexecution state of “partially executed state” or “not-executed state”;thus, the period is suitable for use in determining a priority levelthat is based on utilization by a user. In this case, as in the casedescribed above, control unit 11 ends a widget having the lower prioritylevel that is described in the widget control table.

Alternatively, control unit 11 may determine a priority level based on atiming at which an application program is executed (started), instead ofthe above period. In this case, control unit 11 gives a higher prioritylevel to an application program that was executed recently. According tothis configuration, it is possible to display a window of a highlyprioritized application program that has been used often by a userrecently, on a list display screen.

Alternatively, control unit 11 may measure the number of times eachwidget ID is described in the widget control table in associated withinformation on an execution state of “partially executed state” or“not-executed state,” and describe the number of times in the widgetcontrol table. The number of times described in associated withinformation on an execution state of “partially executed state” or“not-executed state” is the number of times identification informationof running application program, or identification information of anapplication program, whose execution is suspended, is described in thewidget control table. In step S11 shown in FIG. 5, control unit 11determines a priority level based on the number of times described inthe widget control table. If the number of times is small, it may meanthat the number of times in which a user uses a widget is small. In thiscase, control unit 11 may determine a lower priority level for a widgetbecause the widget is not so important for a user. Conversely, if thenumber of times is small, it may mean that a user has started using awidget recently, and therefore the widget is important for a user at thetime. In this case, control unit 11 determines a lower priority levelfor a widget as the number of times becomes larger. In step S11 shown inFIG. 5, control unit 11 ends a widget having the lower priority levelthat is described in the widget control table.

Alternatively, control unit 11 may measure the number of times eachwidget ID is described in the widget control table in association withinformation on the execution state of “fully executed state,” anddescribe the number of times in the widget control table. The number oftimes the widget ID is described in associated with information on theexecution state of “fully executed state” is the number of times a newapplication program is executed after execution of an applicationprogram that has been running has been suspended. In this case, as inthe case described above, since the number of times a widget ID isdescribed in association with information on the execution state of“fully executed state” is considered as a period in which a more usefulservice is provided to a user, than the number of times the widget ID isdescribed in association with information on the execution state of“partially executed state” or “not-executed state;” thus, the period issuitable for use in determining a priority level that is based onutilization by a user. In this case, as in the case described above,control unit 11 ends a widget having the lower priority level that isdescribed in the widget control table, in step S11 shown in FIG. 5.

In the above embodiment, when a widget is to be fully executed, controlunit 11 refers to all of a procedure described in the widget, andperforms processing according to the procedure. On the other hand, whena widget is to be partially executed, control unit 11 refers to apredetermined part of a procedure described in the widget, and performsprocessing according to the part of the procedure.

Namely, in the above embodiment, the same widget is used when a widgetis fully executed and when a widget is partially executed. However,widgets that have the same purpose of service, but are differentprograms, may be used when a widget is fully executed and when a widgetis partially executed. In this case, a set of widgets of a type thatincludes a widget used when full execution is carried out and a widgetused when partial execution is carried out may be provided.

In the present invention, a widget can execute plural differentprocessing in the partially executed state.

In the above embodiment, “selection” of a window means providing aninput focus to the window, and specifying the window. However,“selection” of a window may mean only providing an input focus. In thiscase, communication terminal device 10 performs different processingdepending on whether it is in a “selected period” in which a window isselected, or a “non-selected period” in which a window is not selected.For example, communication terminal device 10 displays a time and datein a predetermined display appearance during a non-selected period, anddisplays a time and date in a display appearance different from that ofthe non-selected period, during the selected period. In this case,communication terminal device 10 may display only time during thenon-selected period, and display the date and day of the week inaddition to time during the selected period. In either selected periodor non-selected period, a widget is executed partially, although adifferent range of procedures that is described in a widget is referredto by communication terminal device 10. In this case, if a selectedwindow is specified, for example, by pressing of a predetermined key bya user, communication terminal device 10 changes an execution state ofthe widget from a partially executed state to a fully executed state.

A window according to the present invention may be not only a displayarea assigned to a “widget” of the above embodiment, but also a displayarea assigned to another application program such as a nativeapplication program. Also, a widget may be not only a Java applicationprogram, but also another application program. Also, in the aboveembodiment where display of plural windows is enabled by executing alist display application program, which is a Java application program,display of plural windows may be enabled by another application programsuch as an OS.

Also, a widget may acquire information via a means other than wirelesscommunication unit 12. For example, if an information-processing deviceaccording to the present invention has a so-called IC tag, a widget mayacquire information stored in the IC tag. Alternatively, if aninformation-processing device according to the present invention has aGPS positioning function, a widget may acquire location information (alatitude and longitude or a distance from a given point) using thepositioning function.

In the above embodiment, a user inputs instructions by operating keys ofoperation unit 14. However, soft keys, which correspond to keys ofoperation unit 14, may be displayed on display unit 13 and may be usedto input instructions. Alternatively, if communication terminal device10 has a touch panel, soft buttons on the touch panel may be used asoperation keys.

In the above embodiment, control unit 11 may be deemed as correspondingto an information-processing device according to the present invention,and communication terminal device 10 may be deemed as corresponding tothe information-processing device.

An operation according to the present invention may be not only apressing of a key, but also recognition of a vocal instruction.

In the present invention, an arrangement of images such as icons may bechanged, instead of an arrangement of windows. In other words, “window”referred in the present invention includes an image such as an icon.

In the above embodiment, an allowable number of widgets that can be runsimultaneously is “8”; however, the number may be more than 8 or lessthan 8. As described in the embodiment, the allowable number isdetermined on the basis of a relationship between a storage capacity ofa work area of RAM 11 c and a storage amount required for execution of awidget. For example, if storage capacity of RAM 11 c is increased,control unit 11 is able to execute more widgets simultaneously (in apartially executed state); thus, an allowable number may be increased.

The above embodiment is an embodiment in which the present invention isapplied to a mobile phone. However, the present invention may be appliedto another electronic device. The present invention may be applied to acommunication terminal device such as a PDA (Personal DigitalAssistance), or an information-processing device such as a camera, aportable music player, or a portable game device.

The functions that are realized by control unit 11 of communicationterminal device 10 may be realized by a collection of programs orcooperation of plural hardware resources.

What is claimed is:
 1. An information-processing device comprising: amemory; an execution means for assigning a storage area of the memory toeach of a plurality of application programs, to execute the applicationprogram; a storage means for storing first identification informationthat represents a state in which an application program is running, orsecond identification information that represents a state in whichexecution of an application program is suspended, for each applicationprogram, wherein: (a) in a case where at least one first applicationprogram is running, a total number of the first identificationinformation stored in the storage means is smaller than an allowablenumber of application programs, and a second application program is tobe executed, the execution means: suspends execution of the at least onefirst application program, and rewrites identification information ofthe at least one first application program that is stored in the storagemeans, as the second identification information, assigns a first amountof the storage area to the second application program, to execute thesecond application program, and when the second application program isrunning, and an instruction to execute the first application program hasbeen received, reassigns to the second application program a secondamount of the storage area smaller than the first amount of the storagearea, and assigns the second amount of the storage area to the at leastone first application program, to execute the first application programand the second application program in parallel, and rewritesidentification information of each of the at least one first applicationprogram and the second application program, as the first identification;and (b) in a case where the at least one first application program isrunning, a total number of the first identification information storedin the storage means is equal to the allowable number, and the secondapplication program is to be executed, the execution means: suspendsexecution of the at least one first application program, and rewritesidentification information of the first application program that isstored in the storage means, as the second identification information,assigns the first amount of the storage area of the memory to the secondapplication program, to execute the second application program, when thesecond application program is running, and an instruction to execute theat least one first application program has been received, ends thesecond application program, and assigns the second amount of the storagearea to each of the at least one first application program, to executethe first application program in parallel with other runningapplications, and rewrites identification information of the at leastone first application program, as the first identification information,and the second application program is an application program forimplementing a full function when the first amount of the storage areais assigned to the application program, and for implementing a part ofthe function when the second amount of the storage area is assigned tothe application program.
 2. The information-processing device accordingto claim 1, wherein in the case (b), if an instruction has been receivedto execute the at least one first application program whose execution issuspended, the execution means: identifies a third application programthat has a lower priority level among application programs for which thesecond identification information is written, and ends execution of thethird application program, instead of ending execution of the secondapplication program; and assigns the second amount of the storage areato each of the running second application program and the at least onefirst application program for which the second identificationinformation is written, other than the third application program, toexecute the application programs in parallel, and updates identificationinformation of the application programs to which the second amount ofthe storage area is assigned, to the first identification information.3. The information-processing device according to claim 2, wherein theexecution means specifies, based on a period in which the firstidentification information or the second identification informationrelated to an application program is stored, a priority level of theapplication program.
 4. The information-processing device according toclaim 2, wherein the execution means specifies, based on a period inwhich one application program is executed after execution of anotherapplication is suspended, a priority level of the one applicationprogram.
 5. The information-processing device according to claim 2,wherein the execution means specifies, based on a number of times thefirst identification information or the second identificationinformation related to an application program is stored, a prioritylevel of the application program.
 6. The information-processing deviceaccording to claim 2, wherein the execution means specifies, based on anumber of times one application program is executed after execution ofanother application program is suspended, a priority level of the oneapplication program.
 7. A non-transitory computer-readable mediumstoring a program for causing a computer to execute a program forcausing a computer to execute the steps of: assigning a storage area ofa memory to each of a plurality of application programs, to execute theapplication program; and storing in a storage means first identificationinformation that represents a state in which an application program isrunning, or second identification information that represents a state inwhich execution of an application program is suspended, for eachapplication program, wherein: (a) in a case where at least one firstapplication program is running, a total number of the firstidentification information stored in the storage means is smaller thanan allowable number of application programs, and a second applicationprogram is to be executed, execution of the at least one firstapplication program is suspended, and identification information of theat least one first application program that is stored in the storagemeans is rewritten as the second identification information, a firstamount of the storage area is assigned to the second application programso that the second application program is executed, and when the secondapplication program is running, and an instruction to execute the firstapplication program has been received, a second amount of the storagearea smaller than the first amount of the storage area is reassigned tothe second application program, and the second amount of the storagearea is assigned to the at least one first application program so thatthe first application program and the second application program areexecuted in parallel, and identification information of each of the atleast one first application program and the second application programis rewritten as the first identification information; and (b) in a casewhere the at least one first application program is running, a totalnumber of items of the first identification information stored in thestorage means is equal to the allowable number, and the secondapplication program is to be executed, execution of the at least onefirst application program is suspended, and identification informationof the first application program that is stored in the storage means isrewritten as the second identification information, the first amount ofthe storage area of the memory is assigned to the second applicationprogram so that the second application program is executed, when thesecond application program is running, and an instruction to execute theat least one first application program has been received, the secondapplication program is ended, and the second amount of the storage areais assigned to each of the at least one first application program sothat the first application program is executed in parallel with otherrunning applications, and identification information of the at least onefirst application program is rewritten as the first identificationinformation, and the second application program is an applicationprogram for implementing a full function when the first amount of thestorage area is assigned to the application program, and forimplementing a part of the function when the second amount of thestorage area is assigned to the application program.
 8. Aninformation-processing device comprising: a memory; an execution meansfor assigning a storage area of the memory to each of a plurality ofapplication programs, to execute the application program; and a storagemeans for storing any one of first identification information thatrepresents a full execution state in which an application program canperform all of its function, second identification information thatrepresents a partial execution state in which an application program canperform a part of its function, and third identification informationthat represents a state in which execution of an application program issuspended, for each application program, wherein (a) in a case where atleast one first application program is running, a total number of thesecond identification information stored in the storage means is smallerthan an allowable number of application programs, and a secondapplication program is to be executed, the execution means: suspendsexecution of the at least one first application program, rewritesidentification information of the at least one first application programstored in the storage means, as the third identification information,assigns a first amount of storage area to the second applicationprogram, to execute the second application program in the full executionstate, and rewrites identification information of the second applicationprogram as the first identification information, and when the secondapplication program is running, and an instruction to execute the firstapplication program has been received, reassigns to the secondapplication program a second amount of the storage area smaller than thefirst amount of the storage area, and assigns the second amount of thestorage area to the at least one first application program, to executethe first application program and the second application program inparallel in the partial execution state, and rewrites identificationinformation of each of the at least one first application program andthe second application program, as the second identification; and (b) ina case where the at least one first application program is running, atotal number of the second identification information stored in thestorage means is equal to the allowable number, and the secondapplication program is to be executed, the execution means: suspendsexecution of the at least one first application program, rewritesidentification information of the at least one first application programthat is stored in the storage means, as the second identificationinformation, assigns the first amount of the storage area of the memoryto the second application program, to execute the second applicationprogram in the full execution state, and rewrites identificationinformation of the second application program as the firstidentification information, when the second application program isrunning, and an instruction to execute the at least one firstapplication program has been received, ends the second applicationprogram, assigns the second amount of the storage area to each of the atleast one first application program, to execute the first applicationprogram in parallel in the partial execution state with other runningapplications, and rewrites identification information of the at leastone first application program, as the second identification information,and the second application program is an application program forimplementing a full function when the first amount of the storage areais assigned to the application program, and for implementing a part ofthe function when the second amount of the storage area is assigned tothe application program.